package com.base.monitor.module.biz.service.collect;

import com.base.monitor.framework.result.PageResult;
import com.base.monitor.model.model.biz.collect.criteria.ChannelCriteria;
import com.base.monitor.model.model.biz.collect.dto.HandleChannelDto;
import com.base.monitor.module.biz.context.ClientContext;

public interface ChannelService {

    /**
     * 分页条件查询信道信息
     * @param channelCriteria 查询条件
     * @return
     */
    PageResult<ClientContext.ChannelInfo> page(ChannelCriteria channelCriteria);

    /**
     * 强制下线指定信道
     * @param handleChannelDto 该信道的连接信息
     */
    ClientContext.ChannelInfo kick(HandleChannelDto handleChannelDto);

    /**
     * 将指定信道加入黑名单
     * @param handleChannelDto 该信道的连接信息
     */
    void blacklist(HandleChannelDto handleChannelDto);

    /**
     * 将指定信道从黑名单中移除
     * @param handleChannelDto 该信道的连接信息
     */
    void cancel(HandleChannelDto handleChannelDto);
}
